/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp._115_;

import cz.pecinovsky.english.lootp._parents._ILight_117_119;
import cz.pecinovsky.english.lootp.manager.Ellipse;
import cz.pecinovsky.english.lootp.manager.IPaintable;
import cz.pecinovsky.english.lootp.manager.Painter;

// %I+ <119
//import cz.pecinovsky.english.lootp.shapes.Ellipse;
// %I-

import cz.pecinovsky.english.lootp.utility.IO;
import cz.pecinovsky.english.lootp.utility.NamedColor;



//import cz.pecinovsky.english.lootp._115_.Light_117_119.Light;
////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++

//%X+ xxxxx Start of the ovejumped text with declaration of the envelope xxxxx
/*******************************************************************************
 *<pre>
 * Previous:  No - this is a newly defined class
 * Following: No
 *
 * Project  016z_02_Tvary
 *   + Two constructors
 *
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
/*******************************************************************************
 *<pre>
 * Předchozí: Prázdná v projektu 016z_02_Tvary
 *
 * Projekt  017z_02_Tvary
 *   ~ Přejmenování třídy
 *   + Konstruktory Light(int,int) + Light(int,int,NamedColor)
 *
 * Projekt  018z_02_Tvary
 *   + Atribut bulb
 *   ~ Konstruktory ukládají odkaz na elipsu do atributu bulb
 *                         a odkaz na barvu do atributu color
 *   ~ Změněn name parametru color na b (dokud se nenaučíme this)
 *
 * Projekt  019z_11_Správce
 *   ~ Třída převedena do projektu ovládaného správcem plátna
 *   + Implementace rozhraní IPaintable
 *     + Přidání metoda Nakresli(Painter) vyžadované rozhraním
 *
 * Projekt  020z_11_Správce => Pokračuje v novém souboru
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class Light_117_119
{ static
//%X- ----- End of the ovejumped text with declaration of the envelope -----


//%I+ <119
//public class Light
//%I-
//%X+ <119
public class Light implements IPaintable
//%X-
//%A+ <0
        ,   _ILight_117_119
//%A-
{
//%X+ <118
    private Ellipse    bulb;
    private NamedColor color;


//%X-
    public Light()
    {
//%I+ <118
//        new Ellipse();
//%I-
//%X+ <118
        bulb  = new Ellipse();
        color = bulb.getColor();
//%X-
    }


    public Light(int x, int y)
    {
//%I+ <118
//        new Ellipse(x, y, 50, 50);
//%I-
//%X+ <118
        bulb  = new Ellipse(x, y, 50, 50);
        color = bulb.getColor();
//%X-
    }


//%I+ <118
//    public Light(int x, int y, NamedColor color)
//%I-
//%X+ <118
    public Light(int x, int y, NamedColor b)
//%X-
    {
//%I+ <118
//        new Ellipse(x, y, 50, 50, color);
//%I-
//%X+ <118
        color = b;
        bulb  = new Ellipse(x, y, 50, 50, color);
//%X-
    }
//%X+ <118


//%X-
//%A+ <0
     @Override
//%A-
//%X+ <118
    public void switchOff()
    {
        bulb.setColor(NamedColor.BLACK);
    }


//%X-
//%A+ <0
     @Override
//%A-
//%X+ <118
    public void switchOn()
    {
        bulb.setColor(color);
    }


//%X-
//%A+ <0
     @Override
//%A-
//%X+ <118
    public void blink()
    {
        switchOn();
        IO.pause(500);
        switchOff();
    }
//%X-
//%X+ <119


    /***************************************************************************
     * Prostřednictvím dodaného kreslítka vykreslí obraz své instance.
     *
     * @param painter Painter, které nakreslí instanci
     */
    @Override
    public void paint(Painter painter)
    {
        bulb.paint(painter);
    }
//%X-
    }

//%%- ---- Start of the ovejumped text with closing of the envelope ----
//%== //Takto se označí řádek, jenž bude odkomentován (vhodné např. pro importy)
//Je-li na 6 pozici mezera, odmaže se také

//== TESTING CLASSES AND METHODS ===============================================
    private Light_117_119() {}


//    /***************************************************************************
//     * Test method.
//     */
//    public static void test()
//    {
////        junit.textui.TestRunner.run(suite());
////        junit.textui.TestRunner.run(new Třída("test"));
////        Run.tests(Třída.class,
////                "testPosuny", "testSmoothMovement");
////        System.exit(0);
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main(String[] args)  {  test();  }
}
